Modern servers are running faster than ever before. Server systems typically include a combination of hardware and software components, application programs, operating systems, processors, buses, and memory. Each server relies on physical memory (e.g., dynamic random access memory (DRAM)), for processing. Besides processors, memory is one of the most performance-critical resources for servers and also constitutes a significant portion of the total server hardware costs.
Memory modules are often paired with processors on a system board of a server. When more and more processors provided on the system board, more memory modules are required to accommodate processing needs of the increased number of processors. However, an increased number of memory modules also increases the memory fail rate on the server. This can represent a significant cost increase. Therefore, there is a need to enhance memory fault tolerance in server systems.